Java তে exception handling একটি গুরুত্বপূর্ণ বিষয়। যখন কোনো রানটাইম এরর বা অস্বাভাবিক ঘটনা ঘটে, তখন exception থ্রো (throw) বা ডিক্লেয়ার (declare) করা হয় যাতে সিস্টেমটি সঠিকভাবে রেসপন্ড করতে পারে।
Throw এবং Throws ব্যবহার:
throw: এটি একটি কিওয়ার্ড যা কাস্টম exception তৈরি করে এবং তাতে মান সরবরাহ করে, অর্থাৎ আপনি একটি exception কুন্দলি করে তাতে ডাটা পাস করে থ্রো করতে পারেন।throws: এটি একটি কিওয়ার্ড যা একটি মেথড ডিক্লেয়ারেশনে ব্যবহৃত হয়, যার মাধ্যমে মেথডটি এমন একটি exception ফেলে যা সে নিজে হ্যান্ডেল করতে না পারে, অন্যথায় এই exception অন্য কোথাও হ্যান্ডেল করতে হবে।
Throw এবং Throws এর মধ্যে পার্থক্য:
throwব্যবহৃত হয় exception থ্রো করার জন্য, যখন আপনি একটি exception তৈরি করেন এবং সেটিthrowকরে দেন।throwsব্যবহৃত হয় method declaration-এ exception ডিক্লেয়ার করার জন্য, যাতে মেথডটির ব্যবহারকারী জানে যে এটি কিছু exception ছুঁড়ে দিতে পারে, এবং সেই exception হ্যান্ডেল করা দরকার।
Throw Example:
এখানে একটি কাস্টম exception তৈরি করা হবে এবং তাকে থ্রো করা হবে।
1. Throw Example:
// Custom Exception class
class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}
public class ThrowExample {
public static void validateAge(int age) throws AgeException {
if (age < 18) {
throw new AgeException("Age is less than 18, you are not eligible.");
} else {
System.out.println("Age is valid.");
}
}
public static void main(String[] args) {
try {
validateAge(15); // Throws exception because age is less than 18
} catch (AgeException e) {
System.out.println(e.getMessage()); // Handling exception
}
}
}
Code Explanation:
AgeException: একটি কাস্টম exception তৈরি করা হয়েছে যাExceptionক্লাস থেকে extends করা হয়েছে।validateAge(): এটি একটি মেথড যা age চেক করে এবং যদি এটি ১৮ বছরের কম হয়, তবে একটিAgeExceptionথ্রো করা হয়।main(): এখানেvalidateAge(15)মেথড কল করা হয়েছে, যাAgeExceptionথ্রো করবে, এবং এটি catch block দিয়ে হ্যান্ডেল করা হয়েছে।
Output:
Age is less than 18, you are not eligible.
Throws Example:
এখানে throws কিওয়ার্ড ব্যবহার করা হবে যাতে মেথডটি exception ডিক্লেয়ার করতে পারে এবং সেই exception হ্যান্ডেল করতে হবে বাইরে।
2. Throws Example:
// Custom Exception class
class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}
public class ThrowsExample {
// Method that declares the exception using 'throws'
public static void validateAge(int age) throws AgeException {
if (age < 18) {
throw new AgeException("Age is less than 18, you are not eligible.");
} else {
System.out.println("Age is valid.");
}
}
public static void main(String[] args) {
try {
validateAge(15); // Throws exception because age is less than 18
} catch (AgeException e) {
System.out.println(e.getMessage()); // Handling exception
}
}
}
Code Explanation:
validateAge()মেথডে throws AgeException ব্যবহৃত হয়েছে, যা এটি জানাচ্ছে যে এটিAgeExceptionফেলে দিতে পারে।main()মেথডে exception হ্যান্ডলিং করা হয়েছেtry-catchব্লক দিয়ে।
Output:
Age is less than 18, you are not eligible.
Throws এবং Throw এর মধ্যে পার্থক্য:
| বিষয় | throw | throws |
|---|---|---|
| ব্যবহার | একটি exception থ্রো করতে ব্যবহৃত হয়। | একটি মেথডের exception ডিক্লেয়ার করতে ব্যবহৃত হয়। |
| কোড সেগমেন্ট | সাধারণত মেথডের মধ্যে exception থ্রো করা হয়। | মেথড সিগনেচারে exception ডিক্লেয়ার করা হয়। |
| কাজ | exception তৈরি এবং তা থ্রো করা। | exception ফেলে দেয় এবং হ্যান্ডলিং এর দায়িত্ব অন্যদের উপর চাপায়। |
Exception Handling Best Practices:
- Custom Exception: আপনি যখন কোনো নির্দিষ্ট ধরনের ত্রুটি বুঝতে চান, তখন কাস্টম exception ব্যবহার করুন (যেমন
AgeExceptionবাInsufficientBalanceException)। - Meaningful Exception Messages: exception বার্তাগুলো সঠিক এবং অর্থপূর্ণ হওয়া উচিত, যাতে ডেভেলপাররা সহজেই বুঝতে পারে কেন এটি ঘটেছে।
- Try-Catch Blocks: exception হ্যান্ডলিং সঠিকভাবে করতে try-catch ব্লক ব্যবহার করুন, যাতে অ্যাপ্লিকেশন ক্র্যাশ না করে।
- Specific Exceptions: সাধারণ
Exceptionক্লাসের পরিবর্তে নির্দিষ্ট exception টাইপ ব্যবহার করুন যাতে ত্রুটি শনাক্ত করা সহজ হয়।
throw: একটি exception ইনস্ট্যান্স থ্রো করতে ব্যবহৃত হয় এবং এটি আপনি যখন একটি exception তৈরি করতে চান তখন ব্যবহার করেন।throws: এটি মেথডের মধ্যে ডিক্লেয়ার করা হয়, যা জানায় যে মেথডটি একটি নির্দিষ্ট exception ফেলে দিতে পারে এবং এর হ্যান্ডলিং বাইরে করতে হবে।
এটি Java তে exception হ্যান্ডলিং করার একটি গুরুত্বপূর্ণ অংশ যা সঠিকভাবে ব্যবহৃত হলে প্রোগ্রামটিকে আরো রোবস্ট এবং ত্রুটিমুক্ত করে তোলে।
Content added By
Read more